Carlos Garnacho [Mon, 30 May 2011 17:26:28 +0000 (19:26 +0200)]
gtkcssprovider: plug several leaks
In finalize(), clear all rulesets.
In parse_declaration(), Free the GValue under unhandled error situations.
In gtk_css_provider_load_internal(), Do not leak the file contents.
Carlos Garnacho [Mon, 30 May 2011 17:21:42 +0000 (19:21 +0200)]
gtkstyleproperty: Plug two leaks
In rgba_value_parse(), unref the symbolic color once we've resolved it.
In gradient_value_parse(), take the GtkGradient so we leave no dangling
references.
Carlos Garnacho [Mon, 30 May 2011 17:18:41 +0000 (19:18 +0200)]
gtkstyleproperties: zero GValue out before using G_VALUE_COLLECT_INIT()
Fixes invalid reads in valgrind
Carlos Garnacho [Mon, 30 May 2011 17:04:22 +0000 (19:04 +0200)]
gtkcssprovider: Use g_slice_dup() to copy GValues around
GValues stored in GtkCssRulesets are gslice managed, so don't
g_memdup() GValues from shorthand properties. This fixes
memory corruptions when reloading contents in a GtkCssProvider.
Carles Ferrando [Sun, 29 May 2011 12:10:00 +0000 (14:10 +0200)]
[l10n]Updated Catalan (Valencian) translation
Carles Ferrando [Sun, 29 May 2011 12:09:36 +0000 (14:09 +0200)]
[l10n]Updated Catalan (Valencian) translation
Kristjan SCHMIDT [Sat, 28 May 2011 12:32:09 +0000 (14:32 +0200)]
Updated Esperanto translation
Benjamin Otte [Fri, 27 May 2011 02:29:56 +0000 (04:29 +0200)]
liststore: Replace macro with an inline function
Also remove a duplicate check in gtk_list_store_iter_is_valid().
gcc was complaining about "comparison always true" when using the macro.
Benjamin Otte [Fri, 27 May 2011 02:24:10 +0000 (04:24 +0200)]
styleproperties: Remove unused priv variables
Benjamin Otte [Fri, 27 May 2011 02:23:29 +0000 (04:23 +0200)]
treeview: Remove unused variables
... and all the code doing complex computations to assign values to
them.
Benjamin Otte [Fri, 27 May 2011 02:23:10 +0000 (04:23 +0200)]
button: Remove unused variables
Benjamin Otte [Fri, 27 May 2011 02:22:52 +0000 (04:22 +0200)]
docs: Remove unused variables in shooter example
Benjamin Otte [Fri, 27 May 2011 02:22:24 +0000 (04:22 +0200)]
gtk-demo: Don't store anchor in an unused variable
Benjamin Otte [Fri, 27 May 2011 02:21:57 +0000 (04:21 +0200)]
gtk-demo: Remove unused variable for text tags
Benjamin Otte [Fri, 27 May 2011 02:21:40 +0000 (04:21 +0200)]
tests: Remove unused variables
Benjamin Otte [Fri, 27 May 2011 02:20:45 +0000 (04:20 +0200)]
tests: Make forcing of class registers work without gcc warnings
Benjamin Otte [Wed, 25 May 2011 15:40:03 +0000 (17:40 +0200)]
css: Constify path argument to _css_selector_matches()
It should have been const all the time, but I assumed widgetpath code
wasn't properly const. PEBKAC.
Benjamin Otte [Wed, 25 May 2011 18:22:14 +0000 (20:22 +0200)]
widgetpath: Make includes absolute
Just like everywhere else
Benjamin Otte [Wed, 25 May 2011 15:53:12 +0000 (17:53 +0200)]
menuitem: Remove unused variable
Seriously, can't people compile with -Werror? Broke with
5f2ef59d6968f311abe3ebf9f477120240c1acb2
Benjamin Otte [Thu, 26 May 2011 01:14:00 +0000 (03:14 +0200)]
styleproperty: Fix memleak in unpacking code
Benjamin Otte [Thu, 26 May 2011 14:45:25 +0000 (16:45 +0200)]
menuitem: Fix copy/paste error
Thanks to Kalev Lember for noticing this one.
Carlos Garnacho [Fri, 20 May 2011 20:21:59 +0000 (22:21 +0200)]
configure: Check for XGetEventData()
This is a call only available in recent libX11, only the XI2 code
depends on this within GDK, but XI2 implies having GenericEvents
available too.
Carlos Garnacho [Fri, 20 May 2011 20:17:03 +0000 (22:17 +0200)]
gdk: do not fallback to event->xany.window in GdkEventTranslator
This is already done in gdk_event_source_get_filter_window(), and
could lead to wrong event assignment if an event translator happens
to return a window for an event it doesn't handle.
Matthias Clasen [Thu, 26 May 2011 17:15:40 +0000 (13:15 -0400)]
Cut deadwood
The old tutorial examples haven't been built in years, and are
not useful to keep around in git unless somebody does the work
to integrate them into the 'Getting started' section of the
current docs.
Florian Müllner [Thu, 26 May 2011 12:57:21 +0000 (14:57 +0200)]
configure: Fix build of pixbuf-demo
Matthias Clasen [Thu, 26 May 2011 04:32:31 +0000 (00:32 -0400)]
Move demos around
The pixbuf-demo gets its own subdirectory, the other small
tests move from demos/ to tests/.
Matthias Clasen [Thu, 26 May 2011 04:21:54 +0000 (00:21 -0400)]
And actually delete it
Matthias Clasen [Thu, 26 May 2011 04:20:59 +0000 (00:20 -0400)]
Remove no-longer-needed pixbuf_init hack
Since gdk-pixbuf is now a separate project again, we no
longer need to locate it inside our source tree.
Matthias Clasen [Thu, 26 May 2011 04:08:43 +0000 (00:08 -0400)]
Remove an incomplete, dead copy of testgtk
Matthias Clasen [Thu, 26 May 2011 00:19:08 +0000 (20:19 -0400)]
Simplify GtkLockButton
Now it is actually just a button, which makes things simpler
and is closer to what the designers want.
Benjamin Otte [Wed, 25 May 2011 02:49:12 +0000 (04:49 +0200)]
menuitem: Position submenus properly
Now that we can actually query the menu's size, don't query the
preferred minimum size and hope it's correct, but use its actual size.
Benjamin Otte [Wed, 25 May 2011 02:48:20 +0000 (04:48 +0200)]
menu: Realize window before positioning
We want the menu realized so we know the size it's allocating to itself.
And we need that size to position the menu properly.
This is best visible on right-to-left.
Benjamin Otte [Wed, 25 May 2011 02:24:26 +0000 (04:24 +0200)]
paned: More fixes to keep windows in sync with widgets
Fixes sidebar in evince not showing up. This was caused by the
visiblility of the widget changing and the paned not fixing its child
window's visibility accordingly.
Kjell Ahlstedt [Mon, 23 May 2011 20:02:00 +0000 (15:02 -0500)]
bgo#642929 - Don't infinite-loop in GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
If the user pressed Enter to confirm the file chooser while the filename entry
was empty, then gtk_file_chooser_default_should_respond() would go back and forth
between the cases for handling the filename entry and the file list.
Benjamin Otte [Mon, 23 May 2011 05:11:31 +0000 (07:11 +0200)]
tests: Add simple CSS test for widget style properties
Benjamin Otte [Mon, 23 May 2011 05:10:56 +0000 (07:10 +0200)]
cssprovider: Don't convert widget style properties to CSS
They are still CSS, so converting them is wrong.
Benjamin Otte [Mon, 23 May 2011 05:01:14 +0000 (07:01 +0200)]
cssprovider: Use right hash table when printing
If the CSS provider had widget style properties, printing them would
crash since
82b340f6f005a7d2b70d9aa7febb8612a53d0eda
Benjamin Otte [Mon, 23 May 2011 13:46:59 +0000 (15:46 +0200)]
window: Only draw resize grip if its window exists
Don't rely on priv->resize_grip_visible as the code comment in the
variable declaration indicates.
This fixes warnings with GtkPlug, which can cause resize_grip_visible to
be TRUE but grid_window to be NULL - running tests/teststatusicon
reproduces this.
This broke with
7ef113ce56a75641175af31267e2075f634267e0
Matthias Clasen [Mon, 23 May 2011 03:39:48 +0000 (23:39 -0400)]
Remove unused function attributes from symbol files
Kristian Rietveld [Sun, 22 May 2011 10:29:37 +0000 (12:29 +0200)]
quartz: actually register gdk_quartz_display_dispose
Kristian Rietveld [Sun, 22 May 2011 10:27:38 +0000 (12:27 +0200)]
quartz: fix a typo
Benjamin Otte [Sun, 22 May 2011 04:07:18 +0000 (06:07 +0200)]
cssparser: Fix typo where we used "uint" for a type
Interestingly this works for gcc, but breaks on MSVC.
Benjamin Otte [Sun, 22 May 2011 03:55:12 +0000 (05:55 +0200)]
style: Make margin a shorthand
... and add the real properties:
- margin-top
- margin-left
- margin-bottom
- margin-right
Benjamin Otte [Sun, 22 May 2011 03:42:17 +0000 (05:42 +0200)]
style: Make padding a shorthand
... and add the real properties:
- padding-top
- padding-left
- padding-bottom
- padding-right
Benjamin Otte [Sun, 22 May 2011 02:48:02 +0000 (04:48 +0200)]
reftests: sort EXTRA_DIST in Makefile
Benjamin Otte [Sun, 22 May 2011 02:46:42 +0000 (04:46 +0200)]
reftests: Add a reftest to check shorthands do work
Checks shorthands are properly unpacked in the CSS and that they indeed
set all relevant properties. Or at least border-width does.
Benjamin Otte [Sun, 22 May 2011 02:27:38 +0000 (04:27 +0200)]
reftests: Add label-shadows test
Tests shadows work properly for rotated labels
Benjamin Otte [Sun, 22 May 2011 02:24:23 +0000 (04:24 +0200)]
shadow: Redo shadow implementation for rotations
The shadows went bonkers when the labels were rotated
Benjamin Otte [Sun, 22 May 2011 01:53:21 +0000 (03:53 +0200)]
themingeninge: Handle translations properly
We want to keep the location of where to render, but transform th
context by the pango transform.
Benjamin Otte [Sun, 22 May 2011 01:53:02 +0000 (03:53 +0200)]
label: Account for y-translation when rotating
Benjamin Otte [Sun, 22 May 2011 01:09:23 +0000 (03:09 +0200)]
tests: Add parser test for shorthands
Benjamin Otte [Sat, 21 May 2011 22:10:43 +0000 (00:10 +0200)]
style: Convert border-width to a shorthand
Add the corresponding properties it refers to, too:
- border-top-width
- border-left-width
- border-bottom-width
- border-right-width
Benjamin Otte [Sat, 21 May 2011 21:47:19 +0000 (23:47 +0200)]
style: Add support for shorthand properties
Shorthand properties are basically the same a in CSS. For storage in
style properties or the CSS provider, they are unpacked into the real
values, so it is possible to partially override them.
No properties are yet converted to the new world yet, this is just the
code for supporting them.
Benjamin Otte [Sat, 21 May 2011 19:19:57 +0000 (21:19 +0200)]
stylepropertis: Use set_by_property() in set_valist()
... instead of duplicating code. This causes an extra g_value_copy().
If that turns out to be a performance issue, we can invent something
that handles this (like passing a gboolean take_value).
The reason for this duplication deletion is that we want to complicate
the setting code to handle shorthands by unpacking them and storing the
separate values.
Benjamin Otte [Sat, 21 May 2011 19:17:08 +0000 (21:17 +0200)]
styleproperties: Add _gtk_style_properties_set_property_by_property()
... as a replacement for _gtk_style_properties_set_property_by_pspec().
We'll need that to handle shorthands.
Benjamin Otte [Sat, 21 May 2011 18:03:28 +0000 (20:03 +0200)]
styleproperties: Use peek_property() in get_valist()
Benjamin Otte [Sat, 21 May 2011 17:43:11 +0000 (19:43 +0200)]
styleproperties: Validate values when setting them
Note that validation is not necessary when resolving, because all values
are valid for those cases.
Benjamin Otte [Sat, 21 May 2011 17:39:46 +0000 (19:39 +0200)]
styleproperties: Remove needless check
Benjamin Otte [Sat, 21 May 2011 15:43:38 +0000 (17:43 +0200)]
styleproperties: Use peek_property in get_property
... instead of duplicating the code.
Benjamin Otte [Sat, 21 May 2011 15:19:50 +0000 (17:19 +0200)]
styleproperties: Adapt _gtk_style_properties_peek_property()
Optionally return the GtkStyleProperty that was looked up. This feature
isn't used yet, but will soon be.
Benjamin Otte [Sat, 21 May 2011 02:17:28 +0000 (04:17 +0200)]
styleproperties: Move the style property handling code
... from gtkstyleproperties.c to gtkstyleproperty.c
Benjamin Otte [Sat, 21 May 2011 01:30:36 +0000 (03:30 +0200)]
css: Rename gtkcssstrfuncs file to gtkstyleproperty
The idea is to handle the style property registering etc in this file
instead of the styleproperties file. The next commits will move those
files.
Benjamin Otte [Sat, 21 May 2011 01:18:00 +0000 (03:18 +0200)]
stringfuncs: Remove _gtk_css_parse_url() from header
No code changes, just moving the function in the c file so it doesn't
need to be forward-declared.
Benjamin Otte [Thu, 19 May 2011 12:04:51 +0000 (14:04 +0200)]
cssprovider: Use _gtk_style_property_lookup()
This way we get the actual data node and can use it.
Benjamin Otte [Thu, 19 May 2011 12:00:14 +0000 (14:00 +0200)]
styleproperties: Put gtk_style_property_lookup() in private header
Benjamin Otte [Sat, 21 May 2011 01:57:32 +0000 (03:57 +0200)]
styleproperties: Class ref no longer necessary
Now that we initialize the pspecs on-demand, we can avoid the class ref.
Benjamin Otte [Fri, 20 May 2011 21:39:02 +0000 (23:39 +0200)]
styleproperties: Init the default properties when they're needed
Instead of initing the default style properties in the class_init
func of the style properties, init them when they are first needed -
when they are queried or when new ones are registered.
That way, they will always be available.
Benjamin Otte [Thu, 19 May 2011 11:55:25 +0000 (13:55 +0200)]
styleproperties: constify gtk_style_property_lookup()
Benjamin Otte [Thu, 19 May 2011 11:48:40 +0000 (13:48 +0200)]
styleproperties: Rename the storage struct for style pspecs
PropertyNode => GtkStyleProperty
Benjamin Otte [Sat, 21 May 2011 20:48:07 +0000 (22:48 +0200)]
tests: Add forgotten file
File was forgotten in
8fd6bd323c055c11c40acc6a09fa1a4cb0ca2b4a
Diego Celix [Thu, 19 May 2011 11:16:18 +0000 (12:16 +0100)]
gtk/gtkstatusbar: gtk_misc_set_alignment replacing
Replacing the function gtk_misc_set_alignment () with
gtk_widget_set_halign () and gtk_widget_set_valign () in
gtk/gtkstatusbar.c
https://bugzilla.gnome.org/show_bug.cgi?id=650664
Matthias Clasen [Sat, 21 May 2011 13:12:02 +0000 (09:12 -0400)]
Allow NULL permissions
This is useful in some scenarios.
Benjamin Otte [Sat, 21 May 2011 01:41:52 +0000 (03:41 +0200)]
docs: Add missing <row>
Cosimo Cecchi [Tue, 3 May 2011 16:45:08 +0000 (12:45 -0400)]
themingengine: use the text-shadow property to render text shadow
This also avoids hardcoding a shadow for insensitive text in the engine,
as it can now be applied from the theme directly.
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Fri, 20 May 2011 20:05:57 +0000 (16:05 -0400)]
shadow: add a method to paint the shadow for a PangoLayout
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Fri, 20 May 2011 20:11:41 +0000 (16:11 -0400)]
styleproperties: resolve properties of type GTK_TYPE_SHADOW
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Fri, 20 May 2011 20:11:08 +0000 (16:11 -0400)]
styleproperties: add a "text-shadow" style property
And document its use in the CSS parser gtk-doc.
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Thu, 19 May 2011 18:48:22 +0000 (14:48 -0400)]
css: add a parser for GTK_TYPE_SHADOW properties
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Thu, 19 May 2011 18:47:17 +0000 (14:47 -0400)]
shadow: add a GtkShadow private type
This will be used as a base both for parsing text-shadow and box-shadow
properties. The type is private, as there's no real use in exporting
this in a public API.
https://bugzilla.gnome.org/show_bug.cgi?id=649314
Cosimo Cecchi [Wed, 18 May 2011 21:22:40 +0000 (17:22 -0400)]
assistant: pack the sidebar in a frame instead of an event box
This has mostly two advantages:
- the most obvious one is the theme can render a border around the
sidebar if it wants to.
- we also can avoid hardcoding a container border width for the sidebar,
and just use a padding from the theme. This also allows different
themes to define a different padding, etc.
The drawback is we must draw the background ourselves, but it's easy
enough.
https://bugzilla.gnome.org/show_bug.cgi?id=650530
Cosimo Cecchi [Wed, 18 May 2011 21:21:22 +0000 (17:21 -0400)]
assistant: remove an useless gtk_widget_reset_style() call
It's not needed to call _reset_style() here, as we did not add the
widget to the parent container yet.
https://bugzilla.gnome.org/show_bug.cgi?id=650530
Benjamin Otte [Thu, 19 May 2011 10:51:13 +0000 (12:51 +0200)]
menu: Only realize menu if it isn't realized yet
Lots of code calls gtk_menu_popup() and we don't want to resize the
window needlessly.
In this particular case, keyboard navigation to submenus caused those
submenus to shrink.
Note: I'm not sure this fix doesn't have nasty side effects, as I'm not
a specialist on menu popup code, so if it does, we'll need to revert it.
Until then, let's keep it, it fixes a bug.
Benjamin Otte [Thu, 19 May 2011 00:17:09 +0000 (02:17 +0200)]
tests: Add missing CSS test
Carlos Garnacho [Wed, 18 May 2011 19:50:26 +0000 (21:50 +0200)]
gdk: Document gdk_window_add_filter()+XGenericEvents behavior
Carlos Garnacho [Wed, 18 May 2011 19:32:22 +0000 (21:32 +0200)]
gdk: Get the right filter window for XI2 events
GdkDeviceManagerXI2 now implements GdkEventTranslator::get_window,
retrieving the right window from the contained XIEvent.
Carlos Garnacho [Wed, 18 May 2011 19:24:57 +0000 (21:24 +0200)]
gdk: Add _gdk_x11_event_translator_get_window()
This method can be implemented by event translators so they
return the right window from XGenericEventCookie events, as
ev->xany.window isn't meaningful for these.
GdkEventSource now also uses this to find out the right window
filters to apply.
Carlos Garnacho [Wed, 18 May 2011 17:37:34 +0000 (19:37 +0200)]
gdk: Move XGetEventData() call to GdkEventSource
This function should be called just once across every possible
event translator and GdkFilterFunc that wants to deal with
any cookie event.
Benjamin Otte [Wed, 18 May 2011 19:14:59 +0000 (21:14 +0200)]
mac keys: Add a missing semicolon
Benjamin Otte [Wed, 18 May 2011 19:13:30 +0000 (21:13 +0200)]
keys.css: Remove semicolons at end of rules
This is not CSS conform (it will break resync code after errors for
generic CSS parsers), so I deprecated the support for that semicolon.
Cosimo Cecchi [Wed, 18 May 2011 16:43:10 +0000 (18:43 +0200)]
reftests: Check that inherited properties work
Benjamin Otte [Wed, 18 May 2011 16:37:23 +0000 (18:37 +0200)]
cssprovider: When loading themes, don't pass in an error
We want to parse existing themes as well as possible instead of failing.
And the g_warning() is preserved.
Benjamin Otte [Wed, 18 May 2011 16:35:37 +0000 (18:35 +0200)]
cssprovider: Don't propagate deprecation messages to passed-in error
It's an informative message, don't stop parsing the CSS because of it.
Benjamin Otte [Wed, 18 May 2011 16:32:22 +0000 (18:32 +0200)]
css: Make property parsing functions take a css parser
Instead of reading a string and then passing that in, let the parse
functions use the full power of the parser.
Benjamin Otte [Wed, 18 May 2011 16:03:23 +0000 (18:03 +0200)]
css: Move binding set parsing to strfuncs
Benjamin Otte [Wed, 18 May 2011 11:15:05 +0000 (13:15 +0200)]
cssstringfuncs: Read colors as symbolic colors always
... and then try to resolve them, so static colors get resolved in
advance, just like it was before.
Benjamin Otte [Wed, 18 May 2011 10:58:11 +0000 (12:58 +0200)]
symboliccolor: Allow props == NULL when resolving
If props == NULL in gtk_symbolic_color_resolve(), fail sanely for named
colors. The docs used to say it was not allowed to pass NULL for named
color, but that had problems:
1) You do not know if a color was created that way. This is especially
hard for generic users (like language bindings).
2) It wasn't even true. Colors using other symbolic colors would also
fail when trying to resolve their named colors, but the docs didn't
say so.
And because I want to use the function to resolve static colors early
where possible, I changed things.
Benjamin Otte [Wed, 18 May 2011 03:47:18 +0000 (05:47 +0200)]
cssprovider: Cache if rulesets have inheritable style properties
This provides a huge speedup as we only need to preprocess style
properties when they are indeed inherited. This roughly doubles the
performance of the CSS matcher and brings the time taken by
gtk_css_provider_get_style() from 19% to 7% in my favorite benchmark.
Benjamin Otte [Wed, 18 May 2011 02:36:43 +0000 (04:36 +0200)]
cssprovider: Keep two hash tables per ruleset
One for the style properties, one for the widget style properties.
This way we can make one hash table by pspec which means we don't have
to repeat the pspec lookup.
Benjamin Otte [Wed, 18 May 2011 02:30:51 +0000 (04:30 +0200)]
cssprovider: Add a new setter for rulesets
We now have set-by-pspec (which is used for normal style properties) and
set-by-name (which is used by widget properties).
Benjamin Otte [Wed, 18 May 2011 02:20:05 +0000 (04:20 +0200)]
cssprovider: Refactor handling of rulesets
Keep rulesets as an on-stack/heap structure instead of allocating all
instances separately.
Also, pass a ruleset to the ruleset parser, so we can make the ruleset
parser do lots of fancy things that might be useful for performance.